package com.campusbackend.service;

import com.campusbackend.entity.NewsManagement;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * <p>
 * 新闻管理表 服务类
 * </p>
 *
 * @author yezi
 * @since 2025-07-29
 */
public interface NewsManagementService extends IService<NewsManagement> {

    /**
     * 分页查询新闻
     * @param page 页码
     * @param size 每页数量
     * @param status 状态筛选（可选）
     * @return 分页结果
     */
    IPage<NewsManagement> getNewsPage(int page, int size, Integer status);

    /**
     * 根据ID查询新闻详情
     * @param id 新闻ID
     * @return 新闻详情
     */
    NewsManagement getNewsById(Long id);

    /**
     * 创建新闻
     * @param title 标题
     * @param content 内容
     * @param summary 摘要
     * @param status 状态
     * @param publisherId 发布者ID
     * @return 创建的新闻
     */
    NewsManagement createNews(String title, String content, String summary, 
                             Integer status, Long publisherId);

    /**
     * 更新新闻
     * @param id 新闻ID
     * @param title 标题
     * @param content 内容
     * @param summary 摘要
     * @param status 状态
     * @return 更新后的新闻
     */
    NewsManagement updateNews(Long id, String title, String content, String summary, Integer status);

    /**
     * 删除新闻（软删除）
     * @param id 新闻ID
     * @return 删除结果
     */
    boolean deleteNews(Long id);

    /**
     * 增加浏览次数
     * @param id 新闻ID
     */
    void incrementViewCount(Long id);
}
